Main memories are becoming sufficiently large that the working set of most Online Transaction Processing databases can be stored in memory. A database system optimized for in-memory storage can support much higher transaction rates than current systems. However, standard concurrency control methods do not scale to the high transaction rates achievable by such systems.
A database system optimized for in-memory storage and running on a many-core processor can support very high transaction rates and levels of concurrency. Efficiently ensuring isolation between concurrently executing transactions becomes challenging in such an environment. Current database systems typically implement isolation by means of locking However, traditional single-version locking suffers from scalability constraints, making traditional locking unsuitable for systems with very high transaction rates.